/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package chatGUI;


import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 *
 * @author vincent
 */
public class DemandeFichier extends JFrame implements ActionListener {
    private JButton accepterFichier;
    private JButton refuserFichier;
    private JPanel panelHaut;
    private JPanel panelBas;
    private JLabel textProposition;
    private String utilisateurDistant;
    private String nomFichier;
    private String cheminDossierReception;
    private boolean accepted;
    private boolean repondu; //Indique si l'utilisateur a répondu ou pas à la reponse
    
    public boolean getRepondu(){
        return this.repondu;
    }
    public boolean getAccepted(){
        return this.accepted;
    }
     public String getCheminDossierReception(){
         return this.cheminDossierReception;
   
     }
    
    
    public DemandeFichier(String nomFichier, String utilisateurDistant){
        super("Porposition de fichier");
        this.repondu=false;
        this.nomFichier = nomFichier;
        this.utilisateurDistant = utilisateurDistant;
        
        
        this.setLayout(new GridLayout(2,1));//Régagle du Layout de la fenêtre
        /*Ajout des pannels à la fenêtre*/
        this.panelHaut = new JPanel();
        this.add(panelHaut);
        this.panelBas = new JPanel();
        this.add(panelBas);
        
        
        /*Pannel du haut;*/
        String tempNomFichier = new String();
        String tempUtilisateurDistant = new String();
        //On verifie que les noms ne sont pas trop grand;
        if(nomFichier.length()>8){
            tempNomFichier = nomFichier.substring(0, 4)+"...";
        }
        else{
            tempNomFichier = nomFichier;
        }
        if(utilisateurDistant.length()>13){
            tempUtilisateurDistant = utilisateurDistant.substring(0, 9)+"...";
        }
        else{
            tempUtilisateurDistant = utilisateurDistant;
        }
        
        this.textProposition = new JLabel(tempUtilisateurDistant+" vous propose le fichier: "+tempNomFichier );
        this.panelHaut.add(this.textProposition);
        
        
        /*Pannel du bas*/
        this.panelBas.setLayout(new GridLayout(1,2)); //Réglage du Layout
        
        this.accepterFichier = new JButton("Accepter");//Régalge du bouton accepter
        this.accepterFichier.addActionListener(this);
        this.panelBas.add(accepterFichier);
        
        this.refuserFichier = new JButton("Refuser");//Réglage du bouton refuser
        this.refuserFichier.addActionListener(this);
        this.panelBas.add(refuserFichier);
        
        
        /*Réglage de la fenêtre*/
        this.setSize(340, 100);
        this.setMinimumSize(new Dimension(340, 100));
        this.setMaximumSize(new Dimension(340, 100));
        this.setVisible(true);
	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        
        
    }
    
    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == this.refuserFichier){      
            System.out.println("Le fichier: "+this.nomFichier+" de "+this.utilisateurDistant+" a été refusé !!");
            this.accepted=false;
            this.cheminDossierReception=null;
            
            /*Sortie*/
            this.repondu=true;
            this.dispose();
            
        }
        else{
            //Proposition de selection de dossier pour un fichier
            JFileChooser dossierChoisi = new JFileChooser();
            dossierChoisi.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
                    int resultat = dossierChoisi.showOpenDialog(this);
                     if (resultat == JFileChooser.APPROVE_OPTION) {
                        String repertoire = dossierChoisi.getCurrentDirectory()+"/" +dossierChoisi.getSelectedFile().getName();
                        System.out.println("Dossier de reception choisi :"
                        + repertoire);
                        this.accepted=true;
                        this.cheminDossierReception=repertoire;
                        
                        /*Sortie*/
                        this.repondu=true;
                        this.dispose();
                    }
            }
       }
    
}
    /*public static void main(String[] args) {
		DemandeFichier demande = new DemandeFichier("Textohggjfgbhgfhghgh.txt", "Jeanyveshsdbvdfgd") ;
                while(demande.getRepondu()==false){
                    
                }
                
               if(demande.getAccepted()==true){
                   System.out.println("Le répertoire choisi est: "+demande.getCheminDossierReception());
               }
               if(demande.getAccepted()==false){
                   System.out.println("Demande refusée !");
               }
    }*/

    
    

